14 research outputs found

    Automatic checking of the usage of the C++ move semantics

    Get PDF
    The C++ programming language is a favorable choice when implementing high performance applications, like real-time and embedded programming, large telecommunication systems, financial simulations, as well as a wide range of other speed sensitive programs. While C++ has all the facilities to handle the computer hardware without compromises, the copy based value semantics of assignment is a common source of performance degradation. New language features, like the move semantics were introduced recently to serve an instrument to avoid unnecessary copies. Unfortunately, correct usage of move semantics is not trivial, and unintentional expensive copies of C++ objects - like copying containers instead of using move semantics - may determine the main (worst-case) time characteristics of the programs. In this paper we introduce a new approach of investigating performance bottlenecks for C++ programs, which operates at language source level and targets the move semantics of the C++ programming language. We detect copies occurring in operations marked as move operations, i.e. intended not containing expensive copy actions. Move operations are marked with generalized attributes - a new language feature introduced to C++11 standard. We implemented a tool prototype to detect such copy/move semantic errors in C++ programs. Our prototype is using the open source LLVM/Clang parser infrastructure, therefore highly portable

    Carbon Isotope Investigation of Freshwater Tufa Precipitation in Karst Streams of Bükk Mountains (Hungary)

    Get PDF
    Recent freshwater tufa precipitation and its parent water were investigated at Szalajka valley, Sebesvíz and Dobrica Spring (Bükk Mts., Hungary). The aim of the study is to analyse the carbon isotope dynamics of freshwater tufa precipitated in karstic streams between the spring water and the first significant tufa barrage using field measurements, water chemistry, and carbon isotope analysis. A further aim was to examine the fossil tufa precipitations in recently active areas and their neighbourhood to determine their age using the 14C method. Based on the 3H content the water samples are relatively young (<10 y). To calibrate the calendar age of older tufas, dead carbon proportion (dcp) were determined in the recently formed freshwater tufas. The lowest dcp of the recent freshwater tufas was estimated at Sebesvíz (9.6±1.3%), the highest at Szalajka (16.4±2.4%) and a moderate value at Dobrica Spring (13.8±2.2%). Due to the rapid decrease in atmospheric 14C level we have to compensate the atmospheric 14C drop between the water infiltration time and the deposition time of fresh carbonates to compensate the bomb-effect. The oldest fossil tufa age (BC 6421-6096) was found at Sebesvíz located around 20 metres away from the riverbed, while the youngest fossil tufa ages (a few years/decades old) were found in the recently active area at all sites

    Towards safer programming language constructs

    Get PDF
    Az aktuális mainstream programozási nyelvek számos biztonsági problémával küszködnek, melyek eredetileg azért lettek bevezetve, mert kényelmesnek és hasznosnak tűnt, azonban később kiderült, hogy ezek a nyelvi elemek ártalmasak is lehetnek. Bár ezek a nyelvek folyamatosan fejlődnek, gyakran meg van kötve a kezük a visszafelé-kompatibilitás miatt. Manapság is új nyelveket készítenek, hogy kijavítsák a hiányosságokat vagy új nyelvi paradigmákat alkossanak. Az első tézisben különböző észlelt problémákat mutatunk be, melyek a programozási nyelvek szintaktikájából erednek. Annak érdekében, hogy el tudjuk kerülni ezeket a problémákat, mi egy sokkal szigorúbb kódolási konvenciót ajánlunk a meglévő nyelvekhez, illetve szigorú szabályokat új nyelvek fejlesztőinek. Ezen szabályok a módosíthatatlan függvény paramétereket, kifejezőbb vezérlési szerkezeteket, valamint a bővíthető operátok-készletet részesítik előnyben. Az aktuális mainstream nyelvek továbbá néhány szemantikai problémával is küszködnek, melyet a második tézisben tárgyalunk. Az implicit konverziókat gyakran megengedik a nyelvek, de ezek nem várt viselkedést okozhatnak. Annak érdekében, hogy C++ nyelvben elkerüljük ezeket a szituációkat egy wrapper-osztály-alapú megoldást. A C++11 move-szemantikája helyes használata esetén csökkenteni tudja a másolásokat. Specifikáltunk és implementáltunk egy algoritmust, mellyel detektálható a move-szemantika helytelen használata. Közismert tény, hogy egy szoftver fejlesztési költsége csak a töredéke a teljes költségnek. Annak érdekében, hogy csökkenteni tudjuk a karbantartási költséget, különböző támogatásokat várunk el a programozási nyelvtől. Ezeket analizáljuk a harmadik tézisben. Ilyen például a bináris kompatibilitás gyenge támogatottsága, valamint a fordítási-idejű tesztelés is. Megoldásokat is javasolunk ezekre a problémákra. Annak érdekében, hogy bizonyítsuk, a javaslataink életképesek, implementáltuk ezeket a Welltype nevű prototípus programozási nyelvben, melyet az eredményeink szerint terveztünk. Külön fejezetben részletezzük ezt a nyelvet, mely egy multi-paradigmás nyelvi elemekkel bővített imperatív nyelv. A teljes fejlesztői környezet elérhető nyílt-forrású szoftverként

    Anhidro-aldóz tozilhidrazonok fémmentes kapcsolási reakciói aril-boronsavakkal

    No full text
    A Debreceni Egyetem Szerves Kémiai Tanszékén működő Kémiai Glikobiológiai Kutatócsoport évek óta meghatározó kutatómunkát folytat az anhidro-aldóz tozilhidrazonok átmenetifém-katalizált és fémmentes kapcsolási reakcióinak vizsgálata terén. A fent említett kutatásokhoz kapcsolódva feladatom az anhidro-aldóz tozilhidrazonok aril-boronsavakkal végzett fémmentes kapcsolási reakcióinak vizsgálata volt, mely során a megfelelő heptenitolokat állítottam elő.BSc/BAVegyészmérnö
    corecore